home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 2005 May
/
chip-cd_2005_05.zip
/
05
/
Internet
/
Amaya 9.1
/
Amaya 9.1 Win
/
amaya-WinXP-9.1.exe
/
amaya
/
HTML.trans.es
< prev
next >
Wrap
Text File
|
2004-12-02
|
12KB
|
528 lines
! Utilizaci≤n del fichero HTML.trans
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! Este archivo puede editarse durante una sesi≤n de Amaya. El
! archivo se analiza dinßmicamente cuando desde el editor se
! solicita la herramienta de transformaci≤n. Por tanto, se
! pueden a±adir nuevas transformaciones mientras se estß editando.
!
! Sintaxis del lenguaje de transformaci≤n de Amaya
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
! Los comentarios empiezan con !
!
! Este archivo puede editarse durante una sesi≤n de Amaya. El
! archivo se analiza dinßmicamente cuando desde el editor se
! solicita la herramienta de transformaci≤n. Por tanto, se
! pueden a±adir nuevas transformaciones mientras se estß editando.
!
! Una regla de transformaci≤n tiene tres partes:
! - un NOMBRE seguido de dos puntos ":"
! - un PATR╙N ORIGEN seguido de punto y coma ";"
! - y una lista de REGLAS entre llaves "{" "}", cada una de ellas
! seguida de un punto y coma ";"
!
! a) El NOMBRE aparecerß en el men· de transformaci≤n.
!
! b) El PATR╙N ORIGEN proporciona una organizaci≤n determinada de los
! elementos a transformar: contiene etiquetas XML/HTML y utiliza una
! sintaxis similar al SGML para los operadores de composici≤n:
! e1 | e2 elecci≤n entre dos elementos e1 y e2
! e1 , e2 secuencia e1 seguido de e2
! e+ secuencia de uno o mßs elementos e
! ?e elemento opcional e
! ( ) agrupaci≤n de nodos
! Las llaves "{" "}" definen el contenido de un nodo.
! El sφmbolo "*" es un comodφn que coincide con cualquier elemento
! Es posible renombrar una etiqueta escribiendo delante un nombre
! seguido de dos puntos ":"
!
! c) Las REGLAS definen las transformaciones a aplicar a los elementos
! identificados en el patr≤n.
! Cada regla acaba con un punto y coma ";"
!
! - Puede tratarse de una regla de acci≤n. En este caso, la regla
! comienza por "$" y va seguida de la acci≤n de men· a realizar.
!
! - Puede haber una lista de elementos de transformaci≤n:
! Tienen dos partes:
! - el identificador de fuente: una etiqueta o un nombre que se
! encuentra en el patr≤n y enlaza la regla a los nodos del patr≤n
! - el cuerpo de la regla: controla transformaci≤n
! hay dos tipos de cuerpos de reglas:
! - a discard rule body is slash and express that the correspoding
! pattern node does not occuring the transformation result
! - una regla de generaci≤n comienza por
! - un sφmbolo ">"
! - y una lista de etiquetas de desstino. La lista se divide en
! dos partes separadas por dos puntos ":":
! * el camino al lugar de generaci≤n
! * y la lista de etiquetas a generar
! El sφmbolo "." se emplea para bajar en la estructura en ßrbol.
! Si la marca especial estrella ("*") se encuentra al final de la lista
! de etiquetas a generar, la etiqueta del elemento origen no se cambia,
! pero el elemento puede desplazarse a otro lugar.
!
! Las reglas se aplican en el orden en el que se encuentran los
! identificadores al recorrer (primero en profundidad) la estructura origen.
! varias reglas pueden tener el mismo identificador, en ese caso las reglas
! se aplican en el orden en que estßn definidas.
! Reglas de transformaci≤n
!!!!!!!!!!!!!!!!!!!!!!!!!!
Direcci≤n:(p{*+})+;
{
* > address:*;
}
Pßrrafo:(address{*+});
{
* > p:*;
}
! Entre listas
!!!!!!!!!!!!!!
Lista de definici≤n:*{(li{(list:*{(li2:li)+}|other:*)+})+};
{
other > dl:dt;
list > dl:dd;
li2 > dl.dd:;
}
Lista no ordenada:(dl{(dt|dd{(*)+})+})+;
{
dt > ul:li;
* > ul.li.ul:li.*;
}
Lista ordenada:(dl{(dt|dd{(*)+})+})+;
{
dt > ol:li;
* > ol.li.ol:li.*;
}
Lista no ordenada:(ol{(li{(*)+})+})+;
{
* > ul:li.*;
}
Lista ordenada:(ul{(li{(*)+})+})+;
{
* > ol:li.*;
}
Definici≤n:dt{(*)+};
{
* > dd:*;
}
TΘrmino:dd{(p|*)+};
{
dd > :dt;
p > :dt;
* > dt:*;
}
Borrar lista de definici≤n:(dl{(dt{(dtc:*)+}|dd{(p|*)+})+})+;
{
dtc > h4:*;
p > p;
* > p:*;
}
! Eliminar Encabezados
!!!!!!!!!!!!!!!!!!!!!!
Pßrrafos:
(h1|h2|h3|h4|h5|h6|p|*{(li{(il:*)+})+})+;
{
h1 > :p;
h2 > :p;
h3 > :p;
h4 > :p;
h5 > :p;
h6 > :p;
p > :p;
il > :p;
}
! Encabezados en/desde definiciones
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Lista de definici≤n:*,(h1|h2|h3|h4|h5|h6|p)+;
{
* > dl:dt;
h1 > dl:dt;
h2 > dl:dt;
h2 > dl:dt;
h3 > dl:dt;
h4 > dl:dt;
h5 > dl:dt;
h6 > dl:dt;
p > dl:dd;
}
Lista de definici≤n:(h1,?hr,?(level1:*)+,?(h2,?(level2:*)+,?((h3|h4|h5|h6),(level3:*)+)+)+)+;
{
h1 > dl:dt;
level1>dl.dd:*;
h2 > dl.dd:dl.dt ;
level2 > dl.dd.dl.dd:*;
h3 > dl.dd.dl.dd:dl.dt ;
h4 > dl.dd.dl.dd:dl.dt ;
h5 > dl.dd.dl.dd:dl.dt ;
h6 > dl.dd.dl.dd:dl.dt ;
level3 > dl.dd.dl.dd.dl.dd:*;
}
Lista de definici≤n:(h2,?hr,?(level1:*)+,(h3,?(level2:*)+,((h4|h5|h6),(level3:*)+)+)+)+;
{
h2 > dl:dt;
level1 > dl.dd:*;
h3 > dl.dd:dl.dt ;
level2 > dl.dd.dl.dd:*;
h4 > dl.dd.dl.dd:dl.dt ;
h5 > dl.dd.dl.dd:dl.dt ;
h6 > dl.dd.dl.dd:dl.dt ;
level3 > dl.dd.dl.dd.dl.dd:*;
}
Lista de definici≤n:(h3,?hr,?(level1:*)+,?(h4,?(level2:*)+,((h5|h6),(level3:*)+)+)+)+;
{
h3 > dl:dt;
level1 > dl.dd:*;
h4 > dl.dd:dl.dt ;
level2 > dl.dd.dl.dd:*;
h5 > dl.dd.dl.dd:dl.dt ;
h6 > dl.dd.dl.dd:dl.dt ;
level3 > dl.dd.dl.dd.dl.dd:*;
}
Lista de definici≤n multinivel:(h4,?hr,?(level1:*)+,(h5,?(level2:*)+,((h6)+,(level3:*)+)+)+)+;
{
h4 > dl:dt;
level1 > dl.dd:*;
h5 > dl.dd:dl.dt ;
level2 > dl.dd.dl.dd:*;
h6 > dl.dd.dl.dd:dl.dt ;
level3 > dl.dd.dl.dd.dl.dd:*;
}
Encabezados h1:(dl{(dt1:dt|dd{(dl{(dt2:dt|dd{(dl{(dt3:dt|dd{content:*})+}|content:*)+})+}|content:*)+})+}|hr)+;
{
dt1 > :h1;
dt2 > :h2;
dt3 > :h3;
content > :*;
}
Encabezados h2:(dl{(dt1:dt|dd{(dl{(dt2:dt|dd{(dl{(dt3:dt|dd{content:*})+}|content:*)+})+}|content:*)+})+}|hr)+;
{
dt1 > :h2;
dt2 > :h3;
dt3 > :h4;
content > :*;
}
Encabezados h3:(dl{(dt1:dt|dd{(dl{(dt2:dt|dd{(dl{(dt3:dt|dd{content:*})+}|content:*)+})+}|content:*)+})+}|hr)+;
{
dt1 > :h3;
dt2 > :h4;
dt3 > :h5;
content > :*;
}
Lista de definici≤n: p,*+;
{
p > dl:dt;
* > dl.dd:*;
}
! Preformateado en/desde pßrrafos
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Preformateado: (p{*+})+;
{
* > pre:*;
}
Pßrrafo: (pre{*+})+;
{
* > p:*;
}
Unir elementos: li,(li2:li)+;
{
li > li:;
li2 > li:;
}
Eliminar el nivel de pßrrafo: li{p{(cont:*)+},?(next:*)+};
{
li > li:;
cont > *;
next > *;
}
Eliminar el subrayado: (u{*+})+;
{
* > :*;
}
Separar elementos: (li{a:*,(b:*)+})+;
{
a > :li.*;
b > :li.*;
}
Unir listas: ul{li+},(ul{li+})+;
{
li > ul:li;
}
Unir listas: ol{li+},(ol{li+})+;
{
li > ol:li;
}
Unir listas: dl{(dt|dd)+},(dl{(dt|dd)+})+;
{
dt > dl:dt;
dd > dl:dd;
}
!Pßrrafo: *{(li{(cont:*)+})+};
! {
! cont > :*;
! }
Pßrrafo: *{(li{(*{?(li{(lev2:*)+})+})+})+};
{
lev2 > :*;
}
Pßrrafos: (ol{(li{(h1|h2|h3|h4|h5|h6|p|*)+})+})+;
{
h1 > :h1;
h2 > :h2;
h3 > :h3;
h4 > :h4;
h5 > :h5;
h6 > :h6;
p > :p;
* > :p.*;
}
Pßrrafos: (ul{(li{(h1|h2|h3|h4|h5|h6|p|*)+})+})+;
{
h1 > :h1;
h2 > :h2;
h3 > :h3;
h4 > :h4;
h5 > :h5;
h6 > :h6;
p > :p;
* > :p.*;
}
Eliminar dos niveles de listas: *{(li{(*{?(li{(lev2:*)+})+})+})+};
{
lev2 > :*;
}
! Formularios en/desde elementos
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Incluir en formulario:(h1|h2|h3|h4|h5|h6|p)+;
{
h1 > form:h1;
h2 > form:h2;
h3 > form:h3;
h4 > form:h4;
h5 > form:h5;
h6 > form:h6;
p > form:p;
}
Eliminar formulario: form{?*+};
{
* > :*;
}
Eliminar el submen·: (optgroup{*+})+;
{
* > :*;
}
! Listas en/desde elementos
!!!!!!!!!!!!!!!!!!!!!!!!!!!
Lista no ordenada: (p|ol|menu|dir|pre|form)+;
{
p > ul:<li style=p.style>;
ol > ul;
pre > ul:li.pre;
form > ul:li.form;
}
Lista ordenada:(p|ul|menu|dir|pre|form)+;
{
p > ol:li;
ul > ol;
pre > ol:li.pre;
form > ol:li.form;
}
! Remove elements
!!!!!!!!!!!!!!!!!!!!!!!!!
Eliminar divisi≤n: (div{*+})+;
{
* > :*;
}
Eliminar elemento center: (center{*+})+;
{
* > :*;
}
Eliminar nivel de pßrrafo: p{img};
{
img > :*;
}
Eliminar elemento blockQuote: blockquote{*+};
{
* > :*;
}
Eliminar elemento font: font{*+};
{
* > :*;
}
Eliminar elemento span: span{*+};
{
* > :*;
}
Eliminar elemento subφndice: sub{*+};
{
* > :*;
}
Eliminar elemento superφndice: sup{*+};
{
* > :*;
}
Eleminar elemento cita (q): q{*+};
{
* > :*;
}
Eliminar elemento bidi: bdo{*+};
{
* > :*;
}
! Tablas en/desde elementos
!!!!!!!!!!!!!!!!!!!!!!!!!!!
Tabla: *{(lev1:li{?(*{(lev2:li)+}|elem:*)+})+};
{
lev1 > <table border="1">:tr;
elem > table.tr:td.*;
lev2 > table.tr:td;
}
Tabla: dl{(dt|dd)+};
{
dt > <table border="1">.tbody:tr.td;
dd > table.tbody.tr:td;
}
Lista ordenada:table{?caption,(block:*{(tr{(td|th),?(td2:td|th2:th)+})+})+};
{
caption > :ol.li.strong;
block > :ol;
tr > ol:li;
td > ol.li:;
th > ol.li:;
td2 > ol.li.ul:li;
th2 > ol.li.ul:li;
}
Lista no ordenada:table{?caption,(block:*{(tr{(td|th),?(td2:td|th2:th)+})+})+};
{
caption > :ul.li.strong;
block > :ul;
tr > ul:li;
td > ul.li:;
th > ul.li:;
td2 > ul.li.ul:li;
th2 > ul.li.ul:li;
}
Lista de definici≤n:table{?caption,(block:*{(tr{(td|th),?(td2:td|th2:th)+})+})+};
{
caption > :dl.dt;
block > :dl;
td > dl:dt;
th > dl:dt;
td2 > dl:dd;
th2 > dl:dd;
}
Tabla vertical: *+;
{
* > <table border="1">:tr.td.*;
}
Tabla horizontal: *+;
{
* > <table border="1">.tr:td.*;
}
Eliminar tabla:table{?caption,(block:*{(tr{(td|th),?(td2:td|th2:th)+})+})+};
{
caption > :div.p;
block > :div;
td > :div;
th > :div;
td2 > :div;
th2 > :div;
}
Transponer tabla:table{tbody{tr{(td|th)+}|(tr{td2:td|th2:th})+}};
{
td > <table border=table.border>:tr.td;
th > table:tr.td;
td2 > <table border=table.border>.tr:td;
th2 > table.tr:td;
}
Celdas de encabezado:?(td|th)+,td,?(td|th)+;
{
$ChangeToHeadingCell;
}
Celdas de datos:?(td|th)+,th,?(td|th)+;
{
$ChangeToDataCell;
}
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! Tests de transformaci≤n del documento completo !
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
DistrThot: body{*+}
{
body > <table border="0" with="100%">.tbody.tr.<td with="30%">.<a href="http://opera.inrialpes.fr/OPERA/Thot.en.html"><img src="thot.gif" alt="Thot Editor" border="0" align="middle">;
body > table.tbody.tr.td:<a href="http://opera.inrialpes.fr">.<img src="opera.gif" alt="Opera project" border="0" align="middle">;
body > table.tbody.tr:td.<img src="guide.gif" alt="Documentation" border="0" align="middle">;
body > table.tbody.tr.td:h1."Title of the page";
body > :<table border="0" with="100%">.tbody.tr.<td with="30%">.h2.<a href="Index.html">."Home";
* > table.tbody.tr:td.*;
}